﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.Design;
using OpenComposite.EII.Repository;
using System.ComponentModel;
using System.Drawing;

namespace OpenComposite.EII.Interfaces
{
	public interface IRepositoryController
	{
		// Properties
		DesignerVerbCollection Verbs { get; set; }
		IRepositoryItem RepositoryItem { get; }
		string Title { get; }
		Image Image { get; }
		bool IsLoaded { get; }

		// Methods
		object GetView();
		void Initialize(IRepositoryItem repositoryItem);
		void BeginLoad();
		void Flush();
		void Save();
		void BeginUnload();

		// Events
		event EventHandler Loaded;
		event EventHandler Saved;
		event EventHandler Flushed;
		event CancelEventHandler Unloading;
		event EventHandler Unloaded;
		event EventHandler Activated;
		event EventHandler Deactivated;
	}
}
